package com.ethink.order.api.model;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author default
 * @version 1.0.0
 * @ClassName PurchaseOrderModel.java
 * @Description
 * @createTime 2022年11月10日 14:13:00
 */
@Data
@ToString
public class PurchaseOrderModel {
    @Schema(description = "主键")
    private Long id;

    @Schema(description = "采购单号")
    private String orderNo;

    @Schema(description = "销售需求单号")
    private String saleDemandOrderNo;

    @Schema(description = "订单来源")
    private String saleChannel;

    @Schema(description = "订单来源下级")
    private String saleSubChannel;

    @Schema(description = "外部单号")
    private String outOrderNo;

    @Schema(description = "供应商编码")
    private String supplierCode;

    @Schema(description = "供应商名称")
    private String supplierName;

    @Schema(description = "分仓编码")
    private String subWarehouseCode;

    @Schema(description = "分仓名称")
    private String subWarehouseName;

    @Schema(description = "货币编码")
    private String currencyCode;

    @Schema(description = "货币名称")
    private String currencyName;

    @Schema(description = "汇率")
    private BigDecimal exchangeRate;

    @Schema(description = "采购总量")
    private Integer purchaseTotal;

    @Schema(description = "入库数量")
    private Integer inboundQuantity;

    @Schema(description = "缺少数量")
    private Integer missingQuantity;

    @Schema(description = "差异数量")
    private Integer differenceQuantity;

    @Schema(description = "应付金额")
    private BigDecimal shouldPayAmount;

    @Schema(description = "制单人账号")
    private String createUserCode;

    @Schema(description = "制单人名称")
    private String createUserName;

    @Schema(description = "付款时间")
    private Date payTime;

    @Schema(description = "枚举 订单状态:1-草稿(s1)|2-待付款(s2)|3-待收货(s3)|4-已完结(s4)")
    private Integer orderStatus;

    @Schema(description = "制单日期")
    private Date createTime;

    @Schema(description = "备注")
    private String remark;

}
